Notes Complémentaires Table des Matières | Index des Notes Complémentaires |
Declaré dans: app/Appplication.h
|
la nouvelle fonction SetCursor() définit le pointeur de souris en tant qu'objet BCursor . Si sync est fixé à true, la fonction attendra jusqu'à ce que le pointeur soit modifié ; la fonction se terminera immédiatement dans le cas contraire.
Declaré dans: app/Cursor.h and app/AppDefs.h
La nouvelle classe BCursor et son API vous laisse retrouver et définir le pointeur suivant l'application et plus distinctement, les vues de celle-ci. Les deux pointeurs prédéfinis sous BeOS, habituellement identifiés par un nom, sont maintenant représentés par des objets globaux BCursor (à partire de app/AppDefs.h):
Les fonctions qui contrôlent le pointeur du point de vue de l'application (SetCursor(), ShowCursor(), etc) sont, comme auparavant, définis par la classe BApplication; la seule différence de protocole provient de la méthode SetCursor() qui prend maintenant un objet BCursor comme argument.
Pour définir le pointeur de souris dans une BView particulière, utilisez la nouvelle méthode BView::SetViewCursor() . En plus de l'argument BCursor* initial, la fonction prend comme argument optionnel, un booléen qui, fixé à true, indique à la fonction d'appeler Sync() avant de se terminer.Cet argument sync est fixé à true par défaut. Avec la nouvelle API, un BView n'a plus besoin de vérifier les événement d'entrée et de sortie de la souris ; le pointeur changera automatiquement lorsque la souris entrera ou sortira de la vue.
Les anciennes constantes B_HAND_CURSOR et B_I_BEAM_CURSOR (app/AppDefs.h) sont maintenant dépréciées.
Declaré dans: app/Handler.h
La classe BHandler possède un nouveau système d' "observation-notification" dans lequel un handler (l'observateur) peut s'enregistrer pour se voir envoyer des notifications de la part d'autres handlers (le notificateur). Pour s'enregistrer en tant qu'observateur, un BHandler appelle StartWatching(). Lorsque le notificateur désire diffuser un message à ses observateurs, il appelle SendNotices().
|
|
StartWatching[All]() place ce BHandler dans la liste des observateurs de notifier. Lorsque notifier diffusera une notification, cet objet recevra un message de type B_OBSERVER_NOTICE_CHANGE .
L'argument what de StartWatching() laisse l'observateur spécifier à notifier à quelle sorte de changement il doit être notifié (les valeurs que what peut prendre étant définies par notifier). L'observateur peut s'enregistrer avec plusieurs valeurs what au même notificateur en appelant StartWatching() plusieurs fois. Par exemple :
/* En supposant que notifier a déjà défini les valeurs NEW_... */ handler->StartWatching(notifier, NEW_NAME); handler->StartWatching(notifier, NEW_LOCATION); handler->StartWatching(notifier, NEW_ATTITUDE);
Pour recevoir la notification de tous changements (tel que définis dans notifier), utilisez les fonctions StartWatchingAll() .
La version de StartWatching() utilisant un BMessenger comme notifier vous permet de surveiller un notificateur local ou distant (provenant d'une autre application). La version BHandler* permet seulement de surveiller les notificateurs locaux mais peut être appelé avant que notifier soit attaché à un BLooper.
StopWatching() retire un observateur pour une combinaison notifier/what donnée. StopWatchingAll() retire complètement un observateur pour ce notificateur.
La ou les valeurs what avec lesquelle l'observateur s'enregistre ici, sont indiquées dans le champ B_OBSERVE_WHICH_CHANGE du message de notification. Le message de notification lui-même a une valeur what fixée à B_OBSERVER_NOTICE_CHANGE. Par exemple, l'handler qui a enregistré les valeurs "NEW_*" plus haut, pourrait répondre aux notifications comme ceci :
void myHandler::MessageReceived(BMessage *msg) { uint32 change; switch (msg->what) { case B_OBSERVER_NOTICE_CHANGE: msg->FindField(B_OBSERVE_WHICH_CHANGE, &change); switch (change) { case NEW_NAME: ... case NEW_LOCATION: ... case NEW_ATTITUDE: ... ... } ... } ... }
Gardez à l'esprit que les notifications sont diffusées à la discretion du notificateur, à travers sa fonction SendNotices().
CODES DE RETOUR
|
Envoie un message B_OBSERVER_NOTICE_CHANGE à chaque objet BHandler (ou"observateur") observant cet handler (le "notificateur"). Pour observer un notificateur, l'observateur appelle StartWatching(). L'argument what décrit le type de changement que requiert cette notification ; seuls les observateurs s'étant enregistrés pour être informé au sujet de what (ou surveillant tout changement) se voient envoyer une notification.
Les messages B_OBSERVER_NOTICE_CHANGE qui sont envoyés sont copiés à partir de msg, avec la valeur de l'argument what ajoutée comme champ "be:old_what". Notez que le champ what du msg d'origine est mis à jour.
Declaré dans: app/Message.h
Le constructeur du BMessage prenant un (BMessage *) comme argument, a été retiré :
|
Pour remplacer le constructeur dans votre code, déréférencez simplement l'argument. Par exemple :
/* ANCIEN CODE: */ void SomeFunc(BMessage *msg) { BMessage new_msg(msg); ... } /* NOUVEAU CODE: */ void SomeFunc(BMessage *msg) { BMessage new_msg(*msg); ... }
Cela fera en sorte que msg soit copié à l'intérieur de new_msg, toutefois (anticipons vos objections) cela ne provoquera pas une seconde copie (et fuite de mémoire).
|
Nouvelles versions de ces fonctions à retour direct de valeur (auparavant, il était possible de retrouver un int8 ou un int64 uniquement par référence).
Declaré dans: app/Roster.h
BRoster fournit dorénavant un accès aux listes du système "recent documents" et "recent applications" . Certaines versions de Launch() ont donc été dépréciées en faveur de nouvelles versions massivement constées.
|
Ces fonctions accèdent aux listes "documents ouverts récemment", "dossiers ouverts récemment" et "applications lancées récemment" de la partie système. Ces listes sont affichées dans les panneaux de fichier, la Deskbar, et d'autres parties du système. Vous pouvez faire un ajout dans la liste des documents et des dossiers, mais pas dans la liste des applications (celle-ci est mise à jour par le système). Vous ne pouvez pas, par programmation, effacer des éléments de ces listes.
Les fonctions Get... retrouvent les éléments de liste en tant qu'entry_refs qui sont ensuite rajoutés au champ "refs" du l'argument BMessage refList (refList doit être alloué par l'appelant). Les éléments dans "refs" sont listés du plus récent au plus ancien.
GetRecentDocuments() récupère les entry_refs pour les maxCount premiers éléments dans la liste des documents récents. Les arguments optionnels fileType et appSig vous laissent spécifier si vous voulez seulement voir des fichier d'un certain type et/ou qui furent ouverts par une application particulière. la version utilisant fileTypes/fileTypesCount vous laisse spécifier une liste de types de fichiers exploitables.
GetRecentFolders() retourne les maxCount premiers entry_refs dans la liste des dossiers récents. L'argument optionnel appSig vous laisse spécifier les dossiers qui furent ouverts par une application particulière (seulement).
GetRecentApps() retourne les maxCount premiers entry_refs dans la liste des aplications récentes.
AddToRecentDocuments() et AddToRecentFolders() ajoutent l'argument ref à la liste sus-nommée. L'argument appSig, s'il est fourni, sera la signature de l'application ayant ouvert le document ou le dossier.
Notes Complémentaires Table des Matières | Index des Notes Complémentaires |
Copyright © 2000 Be, Inc. All rights reserved..